package sucre
import ve.org.src.util.DirectivasUtils
import ve.org.src.constantes.EventoConstantes
import ve.org.src.constantes.LoginConstantes


class RegistroController {
   
    
    
    def alumno = { }
    def registrarAlumno = {
        def htmlCordinador = new File(servletContext.getRealPath("/plantillas_correos/nuevo_registro.html")).getText()
        def htmlAlumno = new File(servletContext.getRealPath("/plantillas_correos/bienvendida_estudiante.html")).getText()
        def swUsuario = false
        def swAlumno = false
        def clave = DirectivaPassword.findByNombre(
            DirectivasUtils.clave_default).valor
        def formateador  = new java.text.SimpleDateFormat("dd/MM/yyyy")
        def logserv=new LoginService()
        
        //Inicio el registro de usuario
        Usuario usuario = new sucre.Usuario()                      
        usuario.nombreCompleto = params.nombres + " " +  params.apellidos
        usuario.email =  params.correo
        usuario.fechaCaducidad = new Date()
        usuario.fechaUltimoAcceso = new Date()
        usuario.estado = LoginConstantes.ESTADO_USUARIO_ACTIVO
        usuario.perfil = sucre.Perfil.findByNombre('Alumno')      
        usuario.login = params.login
        usuario.telefono = params.telefono
            
        if (usuario.save()) {
            swUsuario = true
            logserv.nuevoPassword(usuario, clave)
        } else {
            render(view:'alumno',model:[usuarioInstance:usuario])
            return
        }
        //Fin el registro de usuario    
        
        //Inicio el registro de Alumno
        def alumno = new sucre.Alumno()
        alumno.cedula =  params.cedula
        alumno.nombres = params.nombres
        alumno.apellidos = params.apellidos
        alumno.correo = params.correo
        alumno.telefonoPersonal = params.telefono
        alumno.telefonoHabitacion = params.telefono
            
        if (alumno.save()) {
            swAlumno =true
        } else {
            def usuarioElimanar = Usuario.findByEmail(params.correo)
            if(usuarioElimanar != null ) {
                if (usuarioElimanar.login != params.login ) {
                    def pass = Password.findAllByUsuario(usuarioElimanar)
                    pass.each { pas ->
                        pas.delete()
                    }
                    usuarioElimanar.delete()
                }
                
            }   
            render(view:'alumno',model:[alumnoInstance:alumno])
            return
            
        }       
        def nombreCompleto = params.nombres +  params.apellidos
                
        def newHtmlCor = htmlCordinador.replace("{nombre}", nombreCompleto).replace("{correo}", params.correo).replace("{usuario}",params.login).replace("{tipo}","Triunfador")
        def newHtmlAlum = htmlAlumno.replace("{clave}",clave).replace("{usuario}",params.login)
            
        def responseUsaurio = sendMail {     
            to params.correo
            subject "Enhorabuena tu registro ha sido exitoso!"
            html  newHtmlAlum
        }
        def responseAdea = sendMail {     
            to 'aldea24dejulio@gmail.com'
            subject "Nuevo registro de triunfador"
            html  newHtmlCor
        }
        //Codigo de enviar email.
        redirect(action: "mensaje", params: [mensaje: "Registro exitoso"])
        
    }
    
    def docente = {}
    
    def registroDocente = {
        def htmlCordinador = new File(servletContext.getRealPath("/plantillas_correos/nuevo_registro.html")).getText()
        def htmlDocente = new File(servletContext.getRealPath("/plantillas_correos/bienvendida_docente.html")).getText()
        def swUsuario = false
        def swDocente = false
        def clave = DirectivaPassword.findByNombre(
            DirectivasUtils.clave_default).valor
        def formateador  = new java.text.SimpleDateFormat("dd/MM/yyyy")
        def logserv=new LoginService()
        
        //Inicio el registro de usuario
        Usuario usuario = new sucre.Usuario()                      
        usuario.nombreCompleto = params.nombres + " " +  params.apellidos
        usuario.email =  params.correo
        usuario.fechaCaducidad = new Date()
        usuario.fechaUltimoAcceso = new Date()
        usuario.estado = LoginConstantes.ESTADO_USUARIO_ACTIVO
        usuario.perfil = sucre.Perfil.findByNombre('Docente')      
        usuario.login = params.login
        usuario.telefono = params.telefono
            
        if (usuario.save()) {
            swUsuario = true
            logserv.nuevoPassword(usuario, clave)
        }else {
            render(view:'docente',model:[usuarioInstance:usuario])
            return
        }
        //Fin el registro de usuario    
        
        //Inicio el registro de Docente
        def docente = new sucre.Docente()
        docente.cedula =  params.cedula
        docente.nombres = params.nombres
        docente.apellidos = params.apellidos
        docente.correo = params.correo
        docente.telefonoPersonal = params.telefono
        docente.telefonoHabitacion = params.telefono
            
        if (docente.save()) {
            swDocente =true
        } else {
            def usuarioElimanar = Usuario.findByEmail(params.correo)
            if(usuarioElimanar != null ) {
                if (usuarioElimanar.login != params.login ) {
                    def pass = Password.findAllByUsuario(usuarioElimanar)
                    pass.each { pas ->
                        pas.delete()
                    }
                    usuarioElimanar.delete()
                }
                
            }   
            render(view:'docente',model:[docenteInstance:docente])
            return
            
        }       
        def nombreCompleto = params.nombres +  params.apellidos
        //Fin el registro de Alumno
        
        def newHtmlCor = htmlCordinador.replace("{nombre}", nombreCompleto).replace("{correo}", params.correo).replace("{usuario}",params.login).replace("{tipo}","Colaborador")
        def newHtmlDocente = htmlDocente.replace("{clave}",clave).replace("{usuario}",params.login)
            
        def responseUsaurio = sendMail {     
            to params.correo
            subject "Enhorabuena tu registro ha sido exitoso!"
            html  newHtmlDocente
        }
        def responseAdea = sendMail {     
            to 'aldea24dejulio@gmail.com'
            subject "Nuevo registro de asesor"
            html  newHtmlCor
        }
        //Codigo de enviar email.
        redirect(action: "mensaje", params: [mensaje: "Registro exitoso"])
            
    }
    def mensaje ={}
}
